﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
		xmlns:loc="clr-namespace:Animator3D.Controls;assembly=Animator3D.Controls">

	

	
	<!--=================================================================
      TreeViewItem
  ==================================================================-->
	<Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton">
		<Setter Property="Focusable" Value="False"/>
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="ToggleButton">
					<Grid
          Width="15"
          Height="13"
          Background="Transparent">
						<Path x:Name="ExpandPath"
            HorizontalAlignment="Left" 
            VerticalAlignment="Center" 
            Margin="1,1,1,1"
            Fill="{DynamicResource DarkBrush}"
            Data="M 4 0 L 8 4 L 4 8 Z"/>
					</Grid>
					<ControlTemplate.Triggers>
						<Trigger Property="IsChecked"
               Value="True">
							<Setter Property="Data"
                TargetName="ExpandPath"
                Value="M 0 4 L 8 4 L 4 8 Z"/>
						</Trigger>
					</ControlTemplate.Triggers>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
	<Style x:Key="TreeViewItemFocusVisual">
		<Setter Property="Control.Template">
			<Setter.Value>
				<ControlTemplate>
					<Border>
						<Rectangle Margin="0,0,0,0"
                 StrokeThickness="5"
                 Stroke="Black"
                 StrokeDashArray="1 2"
                 Opacity="0"/>
					</Border>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>

	<Style x:Key="SkeletonTreeNodeStyle"
     TargetType="{x:Type TreeViewItem}">
		<Setter Property="Background"
      Value="Transparent"/>
		<Setter Property="HorizontalContentAlignment"
      Value="{Binding Path=HorizontalContentAlignment,
              RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
		<Setter Property="VerticalContentAlignment"
      Value="{Binding Path=VerticalContentAlignment,
              RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
		<Setter Property="Padding"
      Value="1,0,0,0"/>
		<Setter Property="Foreground"
      Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
		<Setter Property="FocusVisualStyle"
      Value="{StaticResource TreeViewItemFocusVisual}"/>
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="{x:Type TreeViewItem}">
					<Grid>
						<Grid.ColumnDefinitions>
							<ColumnDefinition MinWidth="19"
                      Width="Auto"/>
							<ColumnDefinition Width="Auto"/>
							<ColumnDefinition Width="*"/>
						</Grid.ColumnDefinitions>
						<Grid.RowDefinitions>
							<RowDefinition Height="Auto"/>
							<RowDefinition/>
						</Grid.RowDefinitions>
						<ToggleButton x:Name="Expander"
                  Style="{StaticResource ExpandCollapseToggleStyle}"
                  IsChecked="{Binding Path=IsExpanded,
                              RelativeSource={RelativeSource TemplatedParent}}"
                  ClickMode="Press"/>
						<Border Name="Bd"
              Grid.Column="1"
							CornerRadius="4,4,4,4"
              Background="{TemplateBinding Background}"
              BorderBrush="{TemplateBinding BorderBrush}"
              BorderThickness="{TemplateBinding BorderThickness}"
              Padding="{TemplateBinding Padding}">
							<ContentPresenter x:Name="PART_Header"
                      ContentSource="Header"
                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="3,3,3,3"/>
						</Border>
						<ItemsPresenter x:Name="ItemsHost"
                  Grid.Row="1"
                  Grid.Column="1"
                  Grid.ColumnSpan="2"/>
					</Grid>
					<ControlTemplate.Triggers>
						<Trigger Property="IsExpanded"
               Value="false">
							<Setter TargetName="ItemsHost"
                Property="Visibility"
                Value="Collapsed"/>
						</Trigger>
						<Trigger Property="HasItems"
               Value="false">
							<Setter TargetName="Expander"
                Property="Visibility"
                Value="Hidden"/>
						</Trigger>
						<MultiTrigger>
							<MultiTrigger.Conditions>
								<Condition Property="HasHeader"
                     Value="false"/>
								<Condition Property="Width"
                     Value="Auto"/>
							</MultiTrigger.Conditions>
							<Setter TargetName="PART_Header"
                Property="MinWidth"
                Value="75"/>
						</MultiTrigger>
						<MultiTrigger>
							<MultiTrigger.Conditions>
								<Condition Property="HasHeader"
                     Value="false"/>
								<Condition Property="Height"
                     Value="Auto"/>
							</MultiTrigger.Conditions>
							<Setter TargetName="PART_Header"
                Property="MinHeight"
                Value="19"/>
						</MultiTrigger>
						<Trigger Property="IsSelected"
               Value="true">
							<Setter TargetName="Bd"
                Property="Background"
                Value="{DynamicResource DarkVerticalGradient}"/>
							<Setter Property="Foreground"
                Value="{DynamicResource BrightBrush}"/>
						</Trigger>
						<MultiTrigger>
							<MultiTrigger.Conditions>
								<Condition Property="IsSelected"
                     Value="true"/>
								<Condition Property="IsSelectionActive"
                     Value="false"/>
							</MultiTrigger.Conditions>
							<Setter TargetName="Bd"
                Property="Background"
                Value="{DynamicResource MediumVerticalGradient}"/>
							<Setter Property="Foreground"
                Value="{DynamicResource  {x:Static SystemColors.ControlTextBrushKey}}"/>
						</MultiTrigger>
						<Trigger Property="IsEnabled"
               Value="false">
							<Setter Property="Foreground"
                Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
						</Trigger>
					</ControlTemplate.Triggers>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
	
	<!-- set the tree's background and border properties -->
	<Style x:Key="SkeletonTreeViewStyle" TargetType="{x:Type TreeView}">

		<Setter Property="Background" Value="{DynamicResource BrightVerticalGradientInverted}" />
		<Setter Property="BorderThickness" Value="1" />

		<Setter Property="BorderBrush" Value="{DynamicResource DarkBrush}" />
		<Setter Property="OverridesDefaultStyle" Value="True" />
		<Setter Property="SnapsToDevicePixels" Value="True" />
		<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
		<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
		<Setter Property="Template">
			<Setter.Value>
				<ControlTemplate TargetType="{x:Type TreeView}">
					<Border Margin="{TemplateBinding Margin}" CornerRadius="4,4,4,4" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" >
						<ScrollViewer Focusable="False" CanContentScroll="False" Padding="4">
							<ItemsPresenter/>
						</ScrollViewer>
					</Border>
				</ControlTemplate>
			</Setter.Value>
		</Setter>
	</Style>
</ResourceDictionary>